public class FloatDetail {
	public static void main(String[] args) {
		// double num1 = 1.6e+2;
		// System.out.println(num1);
		// double num2 = 8.1;
		// System.out.println(num2);
		// float num3 = 5.4f;
		// System.out.println(num3);


		//java的浮点型常量（具体值）默认为double型，声明float变量，需要加上f或F
		//float num1 = 1.1;//error
		// float num2 = 1.1F;//ok
		// double num3 = 1.1;//ok
		// double num4 = 1.1F;//ok

		// //十进制数形式： 如5.12  512.0F    .512(必须有小数点)
		// double num5 = .123;//等价0.123
		// System.out.println(num5);

		// //科学计数法
		// System.out.println(5.12e2);
		// System.out.println(5.12E-2);


		// //通常情况下，应该使用double型，因为它比float更精确
		// double num9 = 2.1234567851;
		// float num10 = 2.1234567851f;
		// System.out.println(num9);
		// System.out.println(num10);


		//浮点数使用陷阱:2.7和8.1/3比较
		double num11 = 2.7;
		double num12 = 8.1/3;
		System.out.println(num11);
		System.out.println(num12);
		//重要知识点：当我们对运算结果是小数的进行相等判断时，要小心
		//应该是以两个数的差值为绝对值，在某个精度范围内判断
		if(num11 == num12)
			System.out.println("相等");//error

		//正确的写法，
		if(num11 - num12 < 0.000001)
			System.out.println("差值非常小，到我认定的标准，认为相等");

		System.out.println(Math.abs(num11 - num12));
		//细节：如果是直接查询得的小数或者直接赋值，是可以直接判断相等
		double d1 = 2.7;
		double d2 = 2.7;
		System.out.println(Math.abs(d1 -d2));

	}
}